let express = require("express");
let bodyParser = require("body-parser");
let { readFun } = require("./utils/readFun")
let { writeFun } = require("./utils/writeFun")
let web = express();
web.use(bodyParser.urlencoded({ extended: true }))
web.use(express.static("public"));
let regiestUser = async (data,username,password,res)=>{
    // res.send("当前用户未注册")
        // 注册用户 将当前要注册的用户信息添加到用户列表中在重新写入
        let userobj = { username, password }
        data.push(userobj);
        try {
            await writeFun("./data/user.json", JSON.stringify(data));
            res.send("注册成功")
        } catch (err) {
            res.send("注册失败")
        }
}
// 编写用户注册接口地址
web.post('/regiest', async (req, res) => {
    // 获取表单传递的参数
    let { username, password, aginpass } = req.body;
    console.log(username, password, aginpass)
    // 判断两次密码是否输入一直 ，若不相等则表示两次密码不一致
    if (password !== aginpass) {
        res.send("两次密码输入不一致！！！")
        return
    }
    // 读取存放用户注册信息的user.json文件
    let data = await readFun('./data/user.json');
    console.log(data)
    // 若读取到的数据为空数组则表示当前用户据未注册
    // if (data.length == 0) {
    //     regiestUser(data,username,password,res)
    //     return;
    // }
    // 判断当前用户是否在当前用户列表中
    let index = data.findIndex(item => {
        return item.username === username
    })
    if (index == -1) {
        // 当前用户未注册
        regiestUser(data,username,password,res);
        return
    }

    // 当前用户已注册 
    res.send("当前用户已注册")
})

// 用户登录接口
web.post("/login",async (req,res)=>{
    // 获取用户登录信息
    let {username,password} = req.body;
    let data = await readFun("./data/user.json");
    // if(data.length===0){
    //     res.send("该用户未注册")
    //     return
    // }
    let index = data.findIndex(item=>{
        return item.username === username
    })
    if(index===-1){
        res.send("该用户未注册")
        return
    }
    // 判断当前用户输入的密码是否和user.json中用户对应的密码相同
    let userInfo = data[index];
    if(userInfo.password===password){
        res.send("登录成功")
        return
    }
     res.send("密码错误")
})

web.listen(8080, () => {
    console.log("running....")
})